package com.feitubc.tools.fileimport.domain;

import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import lombok.Data;


/**
 * ImportLogObject：导入数据操作日志表实体类
 * 
 * @author zhc
 */
@Data
public class ImportLogObject implements java.io.Serializable {

    /** 序列化标识 */
	private static final long serialVersionUID = 1L;
	
    /** 导入批次 */
    private String batch;
    /**
     * 导入业务模块组别（如监控、WMS、DMS等）
     */
    private String groupType;
    /** 操作类型 */
    private String businessType; 
    /** 导入执行service类型（配置的 strategy service type） */
    private String strategyServiceType;
    /** 导入文件名 */
    private String filename; 
    /** excel序号 */
    private Integer excelNo; 
    /** 业务序号 */
    private String bussinessNo;
    /** 业务编码 */
    private String code;
    /**
     * 关键字1
     */
    private String keyword1;
    /**
     * 关键字2
     */
    private String keyword2;
    /**
     * 防重标识
     */
    private String fingerprint;
    /** 状态 */
    private Integer status; 
    /** 结果描述 */
    private String message; 
    
    /**
     * 传入其他参数
     */
    private Map<String, Object> preDataMap;
    
    /** 导入文件的原始数据，记录查询用（map body） */
    private String body;
    
    /** 导入文件数据对象，目前为（map） */
    private Map<Integer, Object> dataMap;
    
    /**
	 * 执行数据，根据此字段判断是否真正执行
	 */
	private Object data;
	
	/**
	 * 根据 ImportFileResultEnum 设置 status 和 message 
	 * @param resultEnum
	 */
	public void setStatusByResultEnum(ImportFileResultEnum resultEnum) {
		if (resultEnum != null) {
			this.setStatusByResultEnum(resultEnum, null);
		}
	}
	
	/**
	 * 根据 ImportFileResultEnum 设置 status 和 message 
	 * @param resultEnum
	 * @param msg
	 */
	public void setStatusByResultEnum(ImportFileResultEnum resultEnum, String msg) {
		if (resultEnum != null) {
			this.setStatus(resultEnum.getStatus());
			if (StringUtils.isBlank(msg)) {
				msg = resultEnum.getMessage();
			}
			if (StringUtils.isNotBlank(this.getMessage())) {
				msg += "," + this.getMessage();
			}
			this.setMessage(msg);
		}
	}

}
